/**
 * 最佳股票买卖
 * 给定一个数组，它的第 i 个元素是一支给定股票第 i 天的价格。
 * 如果你最多只允许完成一笔交易（即买入和卖出一支股票），设计一个算法来计算你所能获取的最大利润
 * leetcode 121
 * */



var max1 = function(prices)
{
    var i = 1;
    var min = prices[0];
    var max = 0;

    
    while (i < prices.length)
    {
        if(prices[i] < min)
        {
            min = prices[i]
        }else if(prices[i] - min > max)
        {
            max = prices[i] - min;
        }

        i++;
    }

    return max;

}


var prices1 = [5,4,3,2,1]  //[1,2,3,4,5];
//[5,4,3,2,1] //[7,1,5,3,6,4] //[2,1,2,0,1]
var res1 = max1(prices1);
console.log(res1);

/**
 * 求股票的最大收益，
 * 给出每天的价格，每天只能交易一次
 * 使用波峰减波谷的方法
 * 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易（多次买卖一支股票）。
 * leetcode 122
 * */

var max2 = function(prices)
{
    var i = 0;
    var valley = prices[0];
    var peak = prices[0];
    var maxprofit = 0;

    while (i < prices.length - 1) {
        while (i < prices.length - 1 && prices[i] >= prices[i + 1])
            i++;
        valley = prices[i];
        while (i < prices.length - 1 && prices[i] <= prices[i + 1])
            i++;
        peak = prices[i];
        maxprofit += peak - valley;
    }
    return maxprofit;
}

var prices = [1,2,3,4,5];
var res = max2(prices);
console.log(res);


/**
 * 给定一个数组，它的第 i 个元素是一支给定的股票在第 i 天的价格。
 * 设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。
 * leetcode 123
 * */

var max3 = function(prices)
{

}


